Network storage, also referred to as network storage systems or data storage systems, is computer data storage connected to a computer network providing data access to heterogeneous clients. Some data storage systems include non-volatile memory (NVM) (e.g., non-volatile random access memory) used during write operations for desirable speed performance. Data is written to NVM along with corresponding metadata. By way of example, one part of the NVM is reserved for metadata and another part is reserved for data. In part, a NVM format defines sizes for the metadata objects.
There are various scenarios where updating the NVM format is desired. For example updating is desired in the following cases: when upgrading the controller (e.g., upgrading to a more powerful controller) along with its increase in NVM; changing the NVRAM partition between the portion holding metadata and the portion holding data; decreasing the page size; performing an NVM layout change (e.g., adding one or more NVM headers), etc. These NVM format upgrades may be triggered through controller software version updates, maintenance releases, patch releases, customer service requests (e.g., increase in speed), etc.
However, NVM format upgrade has heretofore resulted in memory loss and/or degradation in the availability of the memory system due to scheduled system outages. Typically, the memory controllers managing memory access are completely brought off-line to perform the NVRAM format upgrade. That is, the controllers in the system are shut down gracefully, replaced and/or reformatted, and then powered back on to operate under the new format. This is undesirable as the data storage system is unable to handle requests for data during the reformatting process.
What is needed is a network storage device, software, and systems that provide for NVRAM format upgrade without any substantial or noticeable downtime in the storage system while maintaining data integrity.
It is in this context that embodiments arise.